////////////////////////////////////////////////////////////////////////////////

#ifndef _GAMEOBJECT_H_
#include "gameobject.h"
#endif

////////////////////////////////////////////////////////////////////////////////


GameObject::GameObject( int _ID,
                        PE::Point _position,
                        PE::Vector _velocity,
                        double _mass,
                        double _radius,
                        double _resistanceCoeff )
: PhysicalObject(_position, _velocity, _mass, _radius, _resistanceCoeff),
  m_ID(_ID)
{
}


////////////////////////////////////////////////////////////////////////////////


GameObject::~GameObject()
{
}


////////////////////////////////////////////////////////////////////////////////


bool GameObject::IsPlayer() const
{
    return false;
}


////////////////////////////////////////////////////////////////////////////////


bool GameObject::IsBullet() const
{
    return false;
}


////////////////////////////////////////////////////////////////////////////////


bool GameObject::IsWall() const
{
    return false;
}


////////////////////////////////////////////////////////////////////////////////


int GameObject::GetID() const
{
    return m_ID;
}


////////////////////////////////////////////////////////////////////////////////


bool GameObject::operator==( const GameObject& _obj ) const
{
    return m_ID == _obj.GetID();
}


////////////////////////////////////////////////////////////////////////////////


const GameObject* GetGameObject( const PhysicalObject* _obj )
{
    const GameObject* obj = dynamic_cast<const GameObject*>(_obj);

    if (!obj)
        throw "Illegal object type";

    return obj;
}


////////////////////////////////////////////////////////////////////////////////
